﻿// <copyright file="CommonMainUI.cs" company="Pelican Design &amp; Development">
//      Copyright (c) Pelican Design &amp; Development. All Rights Reserved.
// </copyright>

namespace AppDomains
{
    using System.Collections.Generic;
    using System.Collections.ObjectModel;

    /// <summary>
    /// Class to inherit from for every class implementing main UI (main window) logic.
    /// </summary>
    public abstract class CommonMainUI : System.MarshalByRefObject
    {
        /// <summary>
        /// Tests visually if permissions works. This method is used only in technology demo.
        /// </summary>
        public abstract void TestFilePermissions();

        /// <summary>
        /// Adds a set of plugins to show in the window.
        /// </summary>
        /// <param name="plugIns">A collection of loaded plugins.</param>
        public abstract void UsePlugIns(Collection<CommonPlugIn> plugIns);

        /// <summary>
        /// Displays main window which must block code execution until closed.
        /// </summary>
        public abstract void ShowDialog();
    }
}
